// Proxy
// 明星
const star = {
  name: '张XX',
  age: '25',
  phone: '17329961447'
}

// 经纪人
const agent = new Proxy(star, {
  get(target, key, val) {
    if (key === 'phone') {
      // 返回经纪人自己的手机号
      return '17329961448'
    }
    if (key === 'price') {
      // 明星不报价，经纪人报价
      return 120000
    }
    return target[key]
  },
  set(target, key, val) {
    if (key === 'customPrice') {
      if (val < 100000) {
        // 最低10w
        throw new Error('价格太低了')
      } else {
        target[key] = val
        return true
      }
    }
  }
})

// 主办方
console.log(agent.name)
console.log(agent.age)
console.log(agent.phone)
console.log(agent.price)

// 想自己提供报价 (砍价，或者高价争抢)
agent.customPrice = 150000
// agent.customPrice = 90000 //报错 : 价格太低
console.log('customPrice', agent.customPrice)